home *** CD-ROM | disk | FTP | other *** search
-
-
- PYTHON 1.3 Released April 7, 1996.
-
-
- NOTES ON THE AMIGA PORT.
-
-
- Conversion and Amiga specific code by Irmen de Jong.
- (Original code by Guido van Rossum and others)
-
- EMAIL: irmen@cs.vu.nl
- WWW: http://www.cs.vu.nl/~irmen/
-
-
-
- Read the file <DISCL_and_COPYRIGHT>!
-
- It contains the disclaimer for this software, and copyright notices.
-
-
-
-
- Contents:
- ~~~~~~~~~
-
- 1. What's new?
- 2. General remarks.
- 3. Troubleshooting.
- 4. Future.
- 5. Modification history.
-
-
- +----------------------+
- | |
- | 1. What's new? |
- | |
- +----------------------+
-
- IMPORTANT CHANGES SINCE THE PREVIOUS VERSION: (13-Dec-95)
-
- Short:
- - Networking support through AmiTCP (Python also works if
- you do not have AmiTCP, but no networking for you then)
- - New crypt, password and group modules. They only need the
- usergroup.library, not the whole AmiTCP package.
- - Many new builtin modules and library files
- - Changes & improvements in amiga module
- - Changes & improvements in amigapath module
- - Full unix compatible stat module
- - Improved timezone (taken from locale prefs instead of ENV:TZ)
- - Improved environment module
- - Bugfixes
- - Slight speed improvement
- - Multiuser chat server demo source included
- - Installer® utility no longer included. You can find it on your
- orignal installation disks that came with your computer. Copy it
- to your C: directory.
- - Only 20Kb larger!
-
- VERY IMPORTANT: Networking support (through AmiTCP)!
- The python binary is now compiled with AmiTCP support. The interpreter
- still works even if you don't have AmiTCP, but the extra functionality
- (most importantly, the socket module) can't be used without AmiTCP
- (obviously). Some extra functions already work if you only have the
- usergroup.library, and not the full AmiTCP package: the crypt, pwd and grp
- modules for instance. A MultiuserFileSystem-compatible usergroup.library
- can be found on Aminet (didn't try it -- beware). Usergroup.library can
- also be found in the demo version of AmiTCP, which is also on Aminet.
-
- MANY NEW MODULES!
- A whole lot of `new' builtin modules are included in this release. Check
- the module list below to see what is offered. This version implements a
- lot more functions than the previous release, and is only about 20Kb
- larger! I even included the math.hypot function.
- Also there are more library files because of the new builtin modules. This
- includes a simple http-server, and a simple FTP client.
-
- CHANGES IN AMIGA MODULE!
- os.environ (that is, amiga.environ) used to contain both global environment
- variables (from ENV:) and local shell variables. This has been changed; a
- new attribute os.shellvars (that is, amiga.shellvars) now contains the
- local shell variable dictionary. This now includes the 'RC' and 'Result2'
- variables! Moreover, the amiga.shellaliases dictionary now contains the
- aliases defined in the shell!
- Also, the amiga.pipe function has been removed. It is useless without
- threads. Mind that the amiga.popen function still exists!
- Removed the dangerous amiga._exit function. You are very stupid if you
- used it.
-
- CHANGES IN AMIGAPATH MODULE!
- os.path.expanduser (that is, amigapath.expanduser) fixed. Works 100% if
- usergroup.library is present. Otherwise, ~user/ expansion doesn't work,
- but ~/ does.
-
- os.path.split (that is, amigapath.split) CHANGED.
- (Suggested by Kent Polk, kent@eaenki.nde.swri.edu)
-
- The documentation for this function now becomes: (taken from the source)
-
- " Split a path in head (everything up to the last '/' or ':') and tail (the
- rest). If the path ends in '/' or ':', tail will be empty. If there is no
- '/' or ':' in the path, head will be empty. DIFFERENCE WITH posixpath:
- only ONE trailing '/' will be stripped from head! (on the Amiga a double
- slash means "parent dir"! ) This means that if head ends in a '/', you
- MUST add a '/' to it when reconstructing the path, or you will lose the
- "parent dir" slash. Functions that depend on this function are also
- affected! (basename, dirname) "
-
- CHANGED STAT MODULE!
- Because Python is now compiled with AmiTCP support, we also get the bonus
- of a more Unix-compatible stat() and lstat(). Therefore, lib/stat.py has
- been replaced by the the default stat module.
-
- TIMEZONE IMPROVED!
- As another side-effect of linking in AmiTCP stuff, Python now extracts the
- timezone information from your current locale preferences. No need anymore
- for a TZ environment var. (One small problem: the name of the timezone is
- no longer known, and is replaced by '???'.) If the locale prefs couldn't be
- read, the timezone information is taken from ENV:TZ, which must be a string
- like 'MET-1' (MET, -1 hour from GMT).
-
- IMPROVED ENVIRONMENT MODULE!
- The environment module now contains the following functions:
- putenv - old. (is setenv("name","value",1))
- Called as putenv("name","value")
- putenv2 - new. Implements unix putenv(3)
- Called as putenv2("name=value")
- getenv - new. Implements unix getenv(3)
- Called as value=getenv("name")
- setenv - new. Implements unix setenv(3)
- Called as setenv("name","value",overwrite?)
- unsetenv - new. Implements unix unsetenv(3)
- Called as unsetenv("name")
- NOTE: all these operate on GLOBAL environment variables (ENV:) only!
- The following three functions are Amiga specific. They operate on "local"
- variables (the shell-vars) and not on the global ENV: vars:
- setvar - new. setenv on local var only ('set')
- Called as setvar("name","value",overwrite?)
- getvar - new. getenv on local var only ('get')
- Called as value=getvar("name")
- unsetvar - new. unsetenv on local var only ('unset')
- Called as unsetvar("name")
-
- BUGFIXES!
- Most important: the environment module contained a reference count bug,
- which caused python to crash upon exit if you used putenv. Fixed. Also,
- the check for a ".pyc" file extension was case sensitive, so for example
- "test.PYC" wasn't recognised as a precompiled program. Fixed. I also
- fixed a "undefined-data-in-socket-address-structure" bug in the socket
- module (Caused AmiTCP to behave VERY strange). Last: Python can now be
- run directly from Workbench, no need for iconx anymore.
-
-
- +----------------------+
- | |
- | 2. General remarks |
- | |
- +----------------------+
-
- * All tests in Lib/test ran successfully with my version.
- To try it yourself, type:
- cd Python:lib/test
- //Python
- (now enter `import autotest' at the prompt. Should report 'all tests OK')
-
- * To check some command line options, use the -? option, or any other
- unrecognised option.
-
- * The default PYTHONPATH is ";Python:lib", thus when looking for modules,
- python first checks the current directory, then Python:lib. By setting the
- global environment variable PYTHONPATH to f.i. "WORK:pylib", the module
- search path becomes WORK:pylib, then the current directory, then
- Python:lib.
-
- * The `Docs' directory contains 2 text files regarding regular expression
- syntax, and some other documents. You might want to copy other python
- documentation in here.
-
- * The following modules are built in into this release:
- amiga, array, binascii, crypt, environment, grp, imp,
- marshal, math, md5, new, pwd, regex, rotor, select, socket,
- soundex, strop, struct, sys, syslog, time.
- Amiga specific: amiga (amiga version of posix module)
- Needs usergroup.library: crypt, grp, pwd.
- Needs AmiTCP's bsdsocket.library: select, socket, syslog.
- New since previous release (13-dec-95): crypt, grp, md5, pwd, rotor,
- select, socket, soundex, syslog.
-
- Check the python documentation to see what each module offers.
-
- * For a detailed description of the changes I made to the original Python
- sources, read the AMIGA_CHANGES file.
-
- * Mail me if you encounter any Amiga specific problems, or if you have any
- Amiga related questions about Python, or just for fun. More general
- questions are better asked on the usenet newsgroup comp.lang.python. A lot
- of information, including an online manual, can be obtained from
- <http://www.python.org/> or <http://www.cwi.nl/www.python.org/> if your
- site is close to the Netherlands. Read the FAQ before asking!
-
-
- +-----------------------+
- | |
- | 1. Troubleshooting |
- | |
- +-----------------------+
-
- * When I try to install Python, I get "Unable to open your tool
- 'installer'"!
-
- The Installer® utility is no longer included in the archive. You can find
- it on your original installation disks that came with your computer (or
- copy it from somewhere else). You must copy it to your C: directory, or
- somewhere else where the Workbench can find it.
-
- * When I start python, I get "This program requires a math co-processor"!
-
- You have installed the wrong version. Choose the version with IEEE math.
-
- * Python seems so slow!
-
- This is because Python is an interpreted language. Some programs execute
- slow because of this. Other programs can run fast, because they are written
- better, or make heavy use of the fast built-in (compiled) modules.
-
- * I get "Couldn't open bsdsocket.library" or "Couldn't open
- usergroup.library" errors!
-
- You are trying to use functions that need one of these libraries. AmiTCP
- is required if you want to use all (network) functions.
-
- * Python crashes when executing complex (recursive) code!
-
- Your stack size is too low. Python sets it's stack to 15K if your stack
- size setting is less than that. In some (rare) cases, 15K may not be
- enough. Increase the stack size in such cases. The needed stack depends
- on the complexity of the program. Python was compiled without dynamic
- stack-checking because I didn't want to slow it down.
-
-
- IMPORTANT:
- Please let me know if you find an error, encounter problems, or have any
- suggestions! But, as I do this in my spare time, don't expect miracles...
-
-
- +----------------------+
- | |
- | 4. Future |
- | |
- +----------------------+
-
- Currently I am busy extending the interpreter with an API to the Amiga
- shared libraries. In the end this will result in a bunch of modules, one
- for each library, providing the Amiga Python programmer with an interface
- to the Amiga shared libraries. Because I ran into some problems regarding
- C structures, C strings and C pointers, and their integration into Python,
- the release of all this is delayed some time (unknown). Sorry.
-
- I intend to add support for I-Net 225, another networking package. This
- will result in 2 binaries, one for AmiTCP and one for I-Net 225.
-
-
- +---------------------------+
- | |
- | 5. Modification history |
- | |
- +---------------------------+
-
- 10 dec. 1995 - 1st public release.
- 13 dec. 1995 - 2nd public release.
- Darn. 1st version was compiled with a wrong version of
- memory pools library (Caused crash/wrong behavior on
- anything less than Kick 3.0) -- FIXED (uses amiga.lib now).
-
- 10 jan. 1996 - internal
- * Phew. Added (a lot of) prototypes; the whole thing now compiles
- with register arguments instead of stack arguments!
- * Removed binascii module (who uses this?)
- * Implemented os.popen and os.pipe (though the latter is of very
- little use without fork() or threads).
- * Implementes os.execv using Execute(). A bit of a hack; python only
- quits after the new command finished.
- 18 feb. 1996 - internal
- * Got Amiga shared library interface (amigalibs module) to work.
- That is: LVOs can be called. Not very functional yet.
- 2 apr. 1996 - internal
- * Added AmiTCP support!
- * Added many builtin modules, including binascii ;)
- * amigapath.py library module (os.path) changed, especially the split
- function and the expanduser function. Check the source for details.
- * Replaced lib/stat.py by original version (Unix-compatible)
- * Fixed typo in 'usage' text ('colon separated'->'semicolon separated')
- * Some bugfixes. Most notably in environment module, and socket module.
- * Enhanced environment module.
- * Removed amiga.pipe (it is useless without threads) and amiga._exit.
- Separated global & local environment dictionaries, and added a
- shell aliases dictionary.
-
- 7 apr. 1996 - 3rd public release.
- * Some minor changes. Fixed startup code to work with memory pools,
- also when started from Workbench.
- * Improved Installer® script.
-
-
- Irmen de Jong
- (irmen@cs.vu.nl)
-
-
-